package com.hspedu.set_;

import java.util.HashSet;
import java.util.Set;

/**
 * @author DL5O
 * @version 1.0
 */
public class HashSet01 {
    public static void main(String[] args) {

        Set set = new HashSet();
        System.out.println(set.add("john"));//t
        System.out.println(set.add("lucy"));//t
        System.out.println(set.add("john"));//f
        System.out.println(set.add("jack"));//t
        System.out.println(set.add("Rose"));//t

        set.remove("john");
        System.out.println("set="+set);//[Rose, lucy, jack]

        set = new HashSet();//清空
        //4. HashSet 不能添加相同的元素/数据?
        //   所以：
        //      HashSet 不能添加地址一样的引用对象？？？
        set.add("lucy");
        set.add("lucy");
        set.add(new Dog("tom"));//ok
        set.add(new Dog("tom"));//ok
        System.out.println("set="+set);

        //在加深一下，非常经典的面试题
        //这里的要看是个什么机制来决定他是个重复的数据
        set.add(new String("hsp"));//ok
        set.add(new String("hsp"));//加入不了的
        System.out.println("set=" + set);
    }
}

class Dog{
    private String name;

    public Dog(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                '}';
    }
}